// 全局WebSocket连接
let wsConnection = null;

function init() {
    // 初始化WebSocket连接
    initWebSocket();
    refresh();
}

function initWebSocket() {
    const wsUrl = "ws://192.168.31.254:1883/ws"; // 使用数据点表中的MQTT服务器地址
    
    wsConnection = new WebSocket(wsUrl);
    
    wsConnection.onopen = function() {
        console.log("WebSocket连接已建立");
    };
    
    wsConnection.onerror = function(error) {
        console.error("WebSocket错误:", error);
    };
    
    wsConnection.onclose = function() {
        console.log("WebSocket连接已关闭");
    };
}

// 发送消息到队列的通用函数
function sendToQueue(deviceKey, action) {
    if (!wsConnection || wsConnection.readyState !== WebSocket.OPEN) {
        console.error("WebSocket连接未就绪");
        return;
    }
    
    const message = {
        type: "device_control",
        device_key: deviceKey,
        action: action,
        timestamp: new Date().toISOString()
    };
    
    wsConnection.send(JSON.stringify(message));
}

// 修改后的设备控制函数，使用数据点表中的key
function controlLightBedroom(obj) {
    sendToQueue(304, obj === 'on' ? 1 : 0); // 卧室灯 key=304
}

function controlLightLivingroom(obj) {
    sendToQueue(305, obj === 'on' ? 1 : 0); // 客厅灯 key=305
}

function controlAirPurifier(obj) {
    sendToQueue(306, obj === 'on' ? 1 : 0); // 空气净化器 key=306
}

function controlAirConditioner(obj) {
    sendToQueue(101, obj === 'on' ? 1 : 0); // 空调开关 key=101
}

function controlHumidifier(obj) {
    sendToQueue(103, obj === 'on' ? 1 : 0); // 加湿器 key=103
}

function controlCurtain(obj) {
    sendToQueue(104, obj === 'on' ? 1 : 0); // 窗帘 key=104
}

function controlRobotVacuum(obj) {
    sendToQueue(105, obj === 'on' ? 1 : 0); // 扫地机器人 key=105
}

function controlWashingMachine(obj) {
    sendToQueue(106, obj === 'on' ? 1 : 0); // 洗衣机 key=106
}

// 刷新函数，根据数据点表更新传感器数据
function refresh() {
    var xhr = new XMLHttpRequest();
    var url = ""; // 保持你的原有URL
    
    xhr.open("POST", url, true);
    
    var post_req = {
        "type": 1,
        "limit": "all"
    };
    
    xhr.onreadystatechange = function() {
        if (xhr.readyState === 4 && xhr.status === 200) {
            var response = xhr.responseText;
            var info = JSON.parse(response);
            console.log(info);
            
            for (var i = 0; i < info.data.length; i++) {
                switch(info.data[i].key) {
                    case 301: // 温度传感器 key=301
                        document.getElementById('temp').value = info.data[i].val;
                        break;
                    case 302: // 湿度传感器 key=302
                        document.getElementById('hum').value = info.data[i].val;
                        break;
                    case 303: // 火焰传感器 key=303
                        // 处理火焰传感器数据
                        break;
                    case 102: // 空调温度 key=102
                        // 处理空调温度数据
                        break;
                    // 可以根据需要添加其他传感器的处理
                }
            }
        }
    };
    
    xhr.send(JSON.stringify(post_req));
}